import { QuestDefaultApi } from './api';
import { uploadLargeFile } from './upload';

/* eslint-disable @typescript-eslint/no-explicit-any */
class ImgUploadAdapter {
  private loader: any;

  constructor(loader: any) {
    this.loader = loader;
  }

  // postFile是基于axios封装的一个文件上传请求函数，请求参数和返回参数类型都和具体的接口实现方式相关，大家可以基于接口文档自行定义。由于本文的接口返回的是相对路径，因此需要加上对应的头部url
  upload() {
    return new Promise((resolve, reject) => {
      const data = new FormData();
      this.loader.file.then((file: any) => {
        data.append('file', file);
        // QuestDefaultApi.userUploadPost;
        // // postFile(FileTypeEnum.image, data)
        // //   .then((response: IResponseData<{ url: string }>) => {
        // //     resolve({
        // //       default: `${process.env.VUE_APP_BASE_API}/api/v1/auth/file/get/image?url=${response.data.url}`,
        // //     });
        // //   })
        // //   .catch((error) => {
        // //     reject(error);
        // //   });
        uploadLargeFile(file);
      });
    });
  }

  // 中止文件上传的方法，可以自行实现（axios中有取消请求的方法，由于代码里axios做了一层封装，这里就不贴详细代码了）
  // abort() {}
}
export default ImgUploadAdapter;
